home *** CD-ROM | disk | FTP | other *** search
/ BUG 1 / BUGCD1996_0708.ISO / pc / util / minilin / minilin.exe / USR / LIB / SETUP / SETKEYMA.{_9 < prev    next >
Text File  |  1994-03-21  |  2KB  |  82 lines

  1. #!/bin/sh
  2. # Copyright 1993, Patrick Volkerding, Moorhead, MN.
  3. # Use and redistribution covered by the same terms as the "setup" script.
  4. if [ ! -d /usr/lib/kbd/keytables ]; then
  5.  dialog --title "Required files are missing" --msgbox "You cannot remap your keyboard until you install the \
  6. package 'keymaps.tgz' on disk A3. It contains the keyboard map files \
  7. required to proceed." 9 40
  8.  exit
  9. fi
  10. ls /usr/lib/kbd/keytables/*.gz 1> /dev/null 2> /dev/null
  11. if [ $? = 0 ]; then
  12.  SUFFIX=gz
  13. else
  14.  SUFFIX=map
  15. fi
  16.  
  17. cat << EOF > /tmp/keyscript
  18. dialog --title "KEYBOARD MAP SELECTION" --menu "
  19. You may select one of the following keyboard maps. 
  20. You may use the UP/DOWN arrow keys to scroll through
  21. the whole list of choices.
  22. " 20 68 9 \\
  23. EOF
  24. for mapname in /usr/lib/kbd/keytables/*.$SUFFIX; do
  25.  echo "\"$mapname\" \"\" \\" >> /tmp/keyscript
  26. done
  27. echo "2> /tmp/keymp" >> /tmp/keyscript
  28. echo 'ERROR=$?' >> /tmp/keyscript
  29. echo 'if [ $ERROR = 1 -o $ERROR = 255 ]; then' >> /tmp/keyscript
  30. echo '  exit 1;' >> /tmp/keyscript
  31. echo 'fi' >> /tmp/keyscript
  32.  
  33. while [ 0 ]; do
  34.  sh /tmp/keyscript
  35.  if [ $? = 1 ]; then
  36.   rm -f /tmp/keymp /tmp/keyscript
  37.   exit;
  38.  fi
  39.  MAPNAME="`cat /tmp/keymp`"
  40.  SHORTMAP="`basename $MAPNAME`"
  41.  echo "$SHORTMAP" > /tmp/SeTkeymap
  42.  rm /tmp/keymp
  43.  cp $MAPNAME /tmp
  44.  MAPNAME=$SHORTMAP
  45.  
  46.  if [ $SUFFIX = gz ]; then
  47.   echo "$SHORTMAP" > /tmp/SeTkeymaz
  48.   REALNAME="`gzip -l /tmp/$SHORTMAP | cut -b28- | sed -n '$ p'`"
  49.   REALNAME="`basename $REALNAME`"
  50.   gzip -df /tmp/$SHORTMAP
  51.   echo "$REALNAME" > /tmp/SeTkeymap
  52.   MAPNAME=$REALNAME
  53.  fi
  54.  
  55.  loadkeys /tmp/$MAPNAME 1> /dev/null 2> /dev/null
  56.  
  57.  while [ 0 ]; do
  58.   dialog --title "KEYBOARD TEST" --inputbox \
  59. "\n\
  60. OK, the new map is now installed. You may now test it by typing\n\
  61. anything you want. To quit testing the keyboard, enter [y] on a\n\
  62. line by itself to accept the map and go on, or [n] on a line by\n\
  63. itself to reject the current keyboard map and select a new one. " 13 70 2> /tmp/keytest
  64.   if [ $? = 1 ]; then
  65.    REPLY="n"
  66.    break;
  67.   fi
  68.   REPLY="`cat /tmp/keytest`"
  69.   rm -f /tmp/keytest
  70.   if [ "$REPLY" = "n" -o "$REPLY" = "y" ]; then
  71.    break;
  72.   fi
  73.  done
  74.  if [ "$REPLY" = "y" ]; then
  75.   break;
  76.  else
  77.   rm -f /tmp/`cat /tmp/SeTkeymap`
  78.   rm -f /tmp/SeTkeym*
  79.   continue;
  80.  fi
  81. done
  82.